home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / PInterfaces / QD3DController.p < prev    next >
Encoding:
Text File  |  1998-04-09  |  9.2 KB  |  180 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DController.p
  3.  
  4.      Contains:    Q3Controller methods    
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DController;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DCONTROLLER__}
  28. {$SETC __QD3DCONTROLLER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DControllerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37.  
  38.  
  39. {$PUSH}
  40. {$ALIGN POWER}
  41. {$LibExport+}
  42.  
  43. {*****************************************************************************
  44.  **                                                                             **
  45.  **                                Type Definitions                             **
  46.  **                                                                             **
  47.  ****************************************************************************}
  48.  
  49. TYPE
  50. {$IFC TYPED_FUNCTION_POINTERS}
  51.     TQ3ChannelGetMethod = FUNCTION(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; VAR dataSize: UInt32): TQ3Status; C;
  52. {$ELSEC}
  53.     TQ3ChannelGetMethod = ProcPtr;
  54. {$ENDC}
  55.  
  56. {$IFC TYPED_FUNCTION_POINTERS}
  57.     TQ3ChannelSetMethod = FUNCTION(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; dataSize: UInt32): TQ3Status; C;
  58. {$ELSEC}
  59.     TQ3ChannelSetMethod = ProcPtr;
  60. {$ENDC}
  61.  
  62.     TQ3ControllerDataPtr = ^TQ3ControllerData;
  63.     TQ3ControllerData = RECORD
  64.         signature:                CStringPtr;
  65.         valueCount:                UInt32;
  66.         channelCount:            UInt32;
  67.         channelGetMethod:        TQ3ChannelGetMethod;
  68.         channelSetMethod:        TQ3ChannelSetMethod;
  69.     END;
  70.  
  71. {*****************************************************************************
  72.  **                                                                             **
  73.  **                                     Routines                                 **
  74.  **                                                                             **
  75.  ****************************************************************************}
  76. FUNCTION Q3Controller_GetListChanged(VAR listChanged: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  77. FUNCTION Q3Controller_Next(controllerRef: TQ3ControllerRef; VAR nextControllerRef: TQ3ControllerRef): TQ3Status; C;
  78. FUNCTION Q3Controller_New({CONST}VAR controllerData: TQ3ControllerData): TQ3ControllerRef; C;
  79. FUNCTION Q3Controller_Decommission(controllerRef: TQ3ControllerRef): TQ3Status; C;
  80. FUNCTION Q3Controller_SetActivation(controllerRef: TQ3ControllerRef; active: TQ3Boolean): TQ3Status; C;
  81. FUNCTION Q3Controller_GetActivation(controllerRef: TQ3ControllerRef; VAR active: TQ3Boolean): TQ3Status; C;
  82. FUNCTION Q3Controller_GetSignature(controllerRef: TQ3ControllerRef; signature: CStringPtr; numChars: UInt32): TQ3Status; C;
  83. FUNCTION Q3Controller_SetChannel(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; dataSize: UInt32): TQ3Status; C;
  84. FUNCTION Q3Controller_GetChannel(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; VAR dataSize: UInt32): TQ3Status; C;
  85. FUNCTION Q3Controller_GetValueCount(controllerRef: TQ3ControllerRef; VAR valueCount: UInt32): TQ3Status; C;
  86. FUNCTION Q3Controller_SetTracker(controllerRef: TQ3ControllerRef; tracker: TQ3TrackerObject): TQ3Status; C;
  87. FUNCTION Q3Controller_HasTracker(controllerRef: TQ3ControllerRef; VAR hasTracker: TQ3Boolean): TQ3Status; C;
  88. FUNCTION Q3Controller_Track2DCursor(controllerRef: TQ3ControllerRef; VAR track2DCursor: TQ3Boolean): TQ3Status; C;
  89. FUNCTION Q3Controller_Track3DCursor(controllerRef: TQ3ControllerRef; VAR track3DCursor: TQ3Boolean): TQ3Status; C;
  90. FUNCTION Q3Controller_GetButtons(controllerRef: TQ3ControllerRef; VAR buttons: UInt32): TQ3Status; C;
  91. FUNCTION Q3Controller_SetButtons(controllerRef: TQ3ControllerRef; buttons: UInt32): TQ3Status; C;
  92. FUNCTION Q3Controller_GetTrackerPosition(controllerRef: TQ3ControllerRef; VAR position: TQ3Point3D): TQ3Status; C;
  93. FUNCTION Q3Controller_SetTrackerPosition(controllerRef: TQ3ControllerRef; {CONST}VAR position: TQ3Point3D): TQ3Status; C;
  94. FUNCTION Q3Controller_MoveTrackerPosition(controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Vector3D): TQ3Status; C;
  95. FUNCTION Q3Controller_GetTrackerOrientation(controllerRef: TQ3ControllerRef; VAR orientation: TQ3Quaternion): TQ3Status; C;
  96. FUNCTION Q3Controller_SetTrackerOrientation(controllerRef: TQ3ControllerRef; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  97. FUNCTION Q3Controller_MoveTrackerOrientation(controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Quaternion): TQ3Status; C;
  98. FUNCTION Q3Controller_GetValues(controllerRef: TQ3ControllerRef; valueCount: UInt32; VAR values: Single; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  99. FUNCTION Q3Controller_SetValues(controllerRef: TQ3ControllerRef; {CONST}VAR values: Single; valueCount: UInt32): TQ3Status; C;
  100.  
  101. {*****************************************************************************
  102.  **                                                                             **
  103.  **                                     Routines                                 **
  104.  **                                                                             **
  105.  ****************************************************************************}
  106. FUNCTION Q3ControllerState_New(controllerRef: TQ3ControllerRef): TQ3ControllerStateObject; C;
  107. FUNCTION Q3ControllerState_SaveAndReset(controllerStateObject: TQ3ControllerStateObject): TQ3Status; C;
  108. FUNCTION Q3ControllerState_Restore(controllerStateObject: TQ3ControllerStateObject): TQ3Status; C;
  109.  
  110. {*****************************************************************************
  111.  **                                                                             **
  112.  **                                Type Definitions                             **
  113.  **                                                                             **
  114.  ****************************************************************************}
  115.  
  116. TYPE
  117. {$IFC TYPED_FUNCTION_POINTERS}
  118.     TQ3TrackerNotifyFunc = FUNCTION(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef): TQ3Status; C;
  119. {$ELSEC}
  120.     TQ3TrackerNotifyFunc = ProcPtr;
  121. {$ENDC}
  122.  
  123. {*****************************************************************************
  124.  **                                                                             **
  125.  **                                     Routines                                 **
  126.  **                                                                             **
  127.  ****************************************************************************}
  128. FUNCTION Q3Tracker_New(notifyFunc: TQ3TrackerNotifyFunc): TQ3TrackerObject; C;
  129. FUNCTION Q3Tracker_SetNotifyThresholds(trackerObject: TQ3TrackerObject; positionThresh: Single; orientationThresh: Single): TQ3Status; C;
  130. FUNCTION Q3Tracker_GetNotifyThresholds(trackerObject: TQ3TrackerObject; VAR positionThresh: Single; VAR orientationThresh: Single): TQ3Status; C;
  131. FUNCTION Q3Tracker_SetActivation(trackerObject: TQ3TrackerObject; active: TQ3Boolean): TQ3Status; C;
  132. FUNCTION Q3Tracker_GetActivation(trackerObject: TQ3TrackerObject; VAR active: TQ3Boolean): TQ3Status; C;
  133. FUNCTION Q3Tracker_GetButtons(trackerObject: TQ3TrackerObject; VAR buttons: UInt32): TQ3Status; C;
  134. FUNCTION Q3Tracker_ChangeButtons(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; buttons: UInt32; buttonMask: UInt32): TQ3Status; C;
  135. FUNCTION Q3Tracker_GetPosition(trackerObject: TQ3TrackerObject; VAR position: TQ3Point3D; VAR delta: TQ3Vector3D; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  136. FUNCTION Q3Tracker_SetPosition(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR position: TQ3Point3D): TQ3Status; C;
  137. FUNCTION Q3Tracker_MovePosition(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Vector3D): TQ3Status; C;
  138. FUNCTION Q3Tracker_GetOrientation(trackerObject: TQ3TrackerObject; VAR orientation: TQ3Quaternion; VAR delta: TQ3Quaternion; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  139. FUNCTION Q3Tracker_SetOrientation(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  140. FUNCTION Q3Tracker_MoveOrientation(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Quaternion): TQ3Status; C;
  141. FUNCTION Q3Tracker_SetEventCoordinates(trackerObject: TQ3TrackerObject; timeStamp: UInt32; buttons: UInt32; {CONST}VAR position: TQ3Point3D; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  142. FUNCTION Q3Tracker_GetEventCoordinates(trackerObject: TQ3TrackerObject; timeStamp: UInt32; VAR buttons: UInt32; VAR position: TQ3Point3D; VAR orientation: TQ3Quaternion): TQ3Status; C;
  143. {*****************************************************************************
  144.  **                                                                             **
  145.  **                                 Types                                         **
  146.  **                                                                             **
  147.  ****************************************************************************}
  148.  
  149. TYPE
  150. {$IFC TYPED_FUNCTION_POINTERS}
  151.     TQ3CursorTrackerNotifyFunc = PROCEDURE; C;
  152. {$ELSEC}
  153.     TQ3CursorTrackerNotifyFunc = ProcPtr;
  154. {$ENDC}
  155.  
  156. {*****************************************************************************
  157.  **                                                                             **
  158.  **                                 Routines                                     **
  159.  **                                                                             **
  160.  ****************************************************************************}
  161. FUNCTION Q3CursorTracker_PrepareTracking: TQ3Status; C;
  162. FUNCTION Q3CursorTracker_SetTrackDeltas(trackDeltas: TQ3Boolean): TQ3Status; C;
  163. FUNCTION Q3CursorTracker_GetAndClearDeltas(VAR depth: Single; VAR orientation: TQ3Quaternion; VAR hasOrientation: TQ3Boolean; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  164. FUNCTION Q3CursorTracker_SetNotifyFunc(notifyFunc: TQ3CursorTrackerNotifyFunc): TQ3Status; C;
  165. FUNCTION Q3CursorTracker_GetNotifyFunc(VAR notifyFunc: TQ3CursorTrackerNotifyFunc): TQ3Status; C;
  166.  
  167.  
  168.  
  169.  
  170. {$ALIGN RESET}
  171. {$POP}
  172.  
  173. {$SETC UsingIncludes := QD3DControllerIncludes}
  174.  
  175. {$ENDC} {__QD3DCONTROLLER__}
  176.  
  177. {$IFC NOT UsingIncludes}
  178.  END.
  179. {$ENDC}
  180.